package com.qfedu.meidijiaju.controller;

import com.qfedu.meidijiaju.common.ResponseData;
import com.qfedu.meidijiaju.utils.AliOssUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * 哪个模块需要来此复制
 */
@Api(tags = "上传图片")
@RestController
public class UploadFile {

    /**
     * 上传接口
     * @param file
     * @return
     * @throws IOException
     */
    @ApiOperation(value = "上传图片接口")
    @RequestMapping(value = "/upload",method = RequestMethod.POST)
    public ResponseData<String> uploadFileToOss(MultipartFile file) throws IOException {

        ResponseData<String> responseData = new ResponseData<>();

        if(file!=null){
            //得到文件名
            String originalFilename = file.getOriginalFilename();

            InputStream inputStream = file.getInputStream();

            // 文件输出流 ---向文件写入
            ByteArrayOutputStream baos=new ByteArrayOutputStream();
            // 字节数组
            byte[] data=new byte[1024];
            int len;
            //  fis.read(data) 读取文件的内容 放到自己数组 data中
            //  返回值len 就是读取到多少字节
            //  -1   代表文件读完了
            while ((len=inputStream.read(data))!=-1){
                // 向输出流写入 字节
                baos.write(data,0,len);
            }

            /**
             * String bucket,上传到哪一个文件夹
             * String objname, 上传文件的名字
             * byte[] data  上传文件的字节
             */
            String url = AliOssUtil.uploadByte("java2211", originalFilename, baos.toByteArray());

            if (url != null){

                responseData.setCode(0);

                System.out.println("url = " + url);
                //把文件 url 写给前端
                responseData.setData(url);

            } else {

                responseData.setCode(1);

                responseData.setMsg("上传失败！请检查服务器接口！");

            }

            return responseData;
        }

        responseData.setData("请检查上传接口！");

        return responseData;
    }
}
